Telegram Group & Telegram Channel
ℹ️ Что такое @Transactional в Spring?

@Transactional — это аннотация, которая управляет транзакциями в Spring. Она позволяет автоматически начать, зафиксировать или откатить транзакцию при выполнении бизнес-логики. Применяется к методам или классам, где важно обеспечить целостность данных.

🔹 Как работает:


Когда метод помечен @Transactional, Spring создает прокси-объект, который начинает транзакцию до выполнения метода и завершает её после. В случае исключения транзакция откатывается, если оно не является проверяемым (checked exception).

🔹 Конфигурации @Transactional:

▪️ Propagation (распространение):

- REQUIRED (по умолчанию): метод должен выполняться в существующей транзакции, если она есть, иначе создается новая.
- REQUIRES_NEW: всегда создает новую транзакцию, приостанавливая текущую.
- SUPPORTS: метод может выполняться в транзакции, но не требует её обязательного наличия.
- MANDATORY: требует существования транзакции, иначе будет выброшено исключение.
- NOT_SUPPORTED: метод выполняется без транзакции, даже если она существует.
- NEVER: запрещает выполнение метода в транзакции, иначе выбрасывается исключение.
- NESTED: позволяет создавать вложенные транзакции, которые могут быть откатаны отдельно от внешней.

▪️ Isolation (изолированность):

- DEFAULT: уровень изоляции БД по умолчанию.
- READ_UNCOMMITTED: минимальная изоляция, позволяет читать незавершенные изменения.
- READ_COMMITTED: запрещает чтение незавершенных транзакций.
- REPEATABLE_READ: гарантирует, что данные не изменятся во время транзакции.
- SERIALIZABLE: максимальная изоляция, исключает фантомные записи.

▪️ Timeout и Rollback:

timeout: ограничивает время выполнения транзакции (по умолчанию бесконечно).
rollbackFor/noRollbackFor: настраивают, какие исключения должны вызвать откат или нет.

🔹 Когда
@Transactional не сработает?

- @Transactional не срабатывает, если метод с этой аннотацией вызывается внутри другого метода того же класса. Это связано с тем, что Spring использует прокси для управления транзакциями, и он активируется только при внешних вызовах. Когда метод вызывается из другого метода того же класса, прокси не задействуется, и транзакция не будет создана.
- Также нужно помнить, что аннотация не работает с private методами.
Please open Telegram to view this post
VIEW IN TELEGRAM



tg-me.com/javaproglib/6011
Create:
Last Update:

ℹ️ Что такое @Transactional в Spring?

@Transactional — это аннотация, которая управляет транзакциями в Spring. Она позволяет автоматически начать, зафиксировать или откатить транзакцию при выполнении бизнес-логики. Применяется к методам или классам, где важно обеспечить целостность данных.

🔹 Как работает:


Когда метод помечен @Transactional, Spring создает прокси-объект, который начинает транзакцию до выполнения метода и завершает её после. В случае исключения транзакция откатывается, если оно не является проверяемым (checked exception).

🔹 Конфигурации @Transactional:

▪️ Propagation (распространение):

- REQUIRED (по умолчанию): метод должен выполняться в существующей транзакции, если она есть, иначе создается новая.
- REQUIRES_NEW: всегда создает новую транзакцию, приостанавливая текущую.
- SUPPORTS: метод может выполняться в транзакции, но не требует её обязательного наличия.
- MANDATORY: требует существования транзакции, иначе будет выброшено исключение.
- NOT_SUPPORTED: метод выполняется без транзакции, даже если она существует.
- NEVER: запрещает выполнение метода в транзакции, иначе выбрасывается исключение.
- NESTED: позволяет создавать вложенные транзакции, которые могут быть откатаны отдельно от внешней.

▪️ Isolation (изолированность):

- DEFAULT: уровень изоляции БД по умолчанию.
- READ_UNCOMMITTED: минимальная изоляция, позволяет читать незавершенные изменения.
- READ_COMMITTED: запрещает чтение незавершенных транзакций.
- REPEATABLE_READ: гарантирует, что данные не изменятся во время транзакции.
- SERIALIZABLE: максимальная изоляция, исключает фантомные записи.

▪️ Timeout и Rollback:

timeout: ограничивает время выполнения транзакции (по умолчанию бесконечно).
rollbackFor/noRollbackFor: настраивают, какие исключения должны вызвать откат или нет.

🔹 Когда
@Transactional не сработает?

- @Transactional не срабатывает, если метод с этой аннотацией вызывается внутри другого метода того же класса. Это связано с тем, что Spring использует прокси для управления транзакциями, и он активируется только при внешних вызовах. Когда метод вызывается из другого метода того же класса, прокси не задействуется, и транзакция не будет создана.
- Также нужно помнить, что аннотация не работает с private методами.

BY Библиотека джависта | Java, Spring, Maven, Hibernate


Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283

Share with your friend now:
tg-me.com/javaproglib/6011

View MORE
Open in Telegram


Библиотека джависта | Java Spring Maven Hibernate Telegram | DID YOU KNOW?

Date: |

Tata Power whose core business is to generate, transmit and distribute electricity has made no money to investors in the last one decade. That is a big blunder considering it is one of the largest power generation companies in the country. One of the reasons is the company's huge debt levels which stood at ₹43,559 crore at the end of March 2021 compared to the company’s market capitalisation of ₹44,447 crore.

How to Use Bitcoin?

n the U.S. people generally use Bitcoin as an alternative investment, helping diversify a portfolio apart from stocks and bonds. You can also use Bitcoin to make purchases, but the number of vendors that accept the cryptocurrency is still limited. Big companies that accept Bitcoin include Overstock, AT&T and Twitch. You may also find that some small local retailers or certain websites take Bitcoin, but you’ll have to do some digging. That said, PayPal has announced that it will enable cryptocurrency as a funding source for purchases this year, financing purchases by automatically converting crypto holdings to fiat currency for users. “They have 346 million users and they’re connected to 26 million merchants,” says Spencer Montgomery, founder of Uinta Crypto Consulting. “It’s huge.”

Библиотека джависта | Java Spring Maven Hibernate from cn


Telegram Библиотека джависта | Java, Spring, Maven, Hibernate
FROM USA